# EXPERIMENTAL

# mod generated from https://github.com/piotr022/UV_K5_playground/releases/download/release-47/uv_k5_01_26_rssi_printer_encoded.bin



##--------------------- do not modify below this line ---------------------------------------------------
import os,sys,struct
print('Running',os.path.basename(sys.argv[0]),'mod...')
fw =  bytearray(open(sys.argv[1],'rb').read())

fw[0x0004:0x0004+4] = b'\xf9\xe6\x00\x00' #New Reset Handler
fw[0x003C:0x003C+4] = b'\xe1\xe8\x00\x00' #New SysTick Handler


payload = b'\x10\xb5\x06\x4c\x23\x78\x00\x2b\x07\xd1\x05\x4b\x00\x2b\x02\xd0\x04\x48\x00\xe0\x00\xbf\x01\x23\x23\x70\x10\xbd\x94\x13\x00\x20\x00\x00\x00\x00\xc0\x00\x00\x00\x04\x4b\x10\xb5\x00\x2b\x03\xd0\x03\x49\x04\x48\x00\xe0\x00\xbf\x10\xbd\xc0\x46\x00\x00\x00\x00\x98\x13\x00\x20\xc0\x00\x00\x00\x00\x23\xc2\x5c\x01\x33\x00\x2a\xfb\xd1\x58\x1e\x70\x47\x00\x00\x00\x22\x43\x08\x8b\x42\x74\xd3\x03\x09\x8b\x42\x5f\xd3\x03\x0a\x8b\x42\x44\xd3\x03\x0b\x8b\x42\x28\xd3\x03\x0c\x8b\x42\x0d\xd3\xff\x22\x09\x02\x12\xba\x03\x0c\x8b\x42\x02\xd3\x12\x12\x09\x02\x65\xd0\x03\x0b\x8b\x42\x19\xd3\x00\xe0\x09\x0a\xc3\x0b\x8b\x42\x01\xd3\xcb\x03\xc0\x1a\x52\x41\x83\x0b\x8b\x42\x01\xd3\x8b\x03\xc0\x1a\x52\x41\x43\x0b\x8b\x42\x01\xd3\x4b\x03\xc0\x1a\x52\x41\x03\x0b\x8b\x42\x01\xd3\x0b\x03\xc0\x1a\x52\x41\xc3\x0a\x8b\x42\x01\xd3\xcb\x02\xc0\x1a\x52\x41\x83\x0a\x8b\x42\x01\xd3\x8b\x02\xc0\x1a\x52\x41\x43\x0a\x8b\x42\x01\xd3\x4b\x02\xc0\x1a\x52\x41\x03\x0a\x8b\x42\x01\xd3\x0b\x02\xc0\x1a\x52\x41\xcd\xd2\xc3\x09\x8b\x42\x01\xd3\xcb\x01\xc0\x1a\x52\x41\x83\x09\x8b\x42\x01\xd3\x8b\x01\xc0\x1a\x52\x41\x43\x09\x8b\x42\x01\xd3\x4b\x01\xc0\x1a\x52\x41\x03\x09\x8b\x42\x01\xd3\x0b\x01\xc0\x1a\x52\x41\xc3\x08\x8b\x42\x01\xd3\xcb\x00\xc0\x1a\x52\x41\x83\x08\x8b\x42\x01\xd3\x8b\x00\xc0\x1a\x52\x41\x43\x08\x8b\x42\x01\xd3\x4b\x00\xc0\x1a\x52\x41\x41\x1a\x00\xd2\x01\x46\x52\x41\x10\x46\x70\x47\xff\xe7\x01\xb5\x00\x20\x00\xf0\x06\xf8\x02\xbd\xc0\x46\x00\x29\xf7\xd0\x76\xe7\x70\x47\x70\x47\xc0\x46\x00\x20\x70\x47\xd3\x08\xdb\x01\x59\x18\xe0\x23\x9b\x00\x99\x42\x07\xd8\x07\x23\x1a\x40\x06\x3b\x93\x40\x40\x68\x42\x5c\x13\x43\x43\x54\x70\x47\x40\x68\x40\x18\x70\x47\x00\x20\x70\x47\x0a\x00\x30\x3a\x03\x00\xd0\xb2\x09\x28\x05\xd9\x00\x20\x2d\x29\x01\xd1\x58\x68\x46\x30\x70\x47\x07\x20\x42\x43\x58\x68\x80\x18\xf9\xe7\x08\x20\x70\x47\x07\x20\x70\x47\xe0\x22\x10\xb5\x00\x21\x40\x68\x92\x00\x00\xf0\x64\xf9\x10\xbd\x10\xb5\xd5\x23\x98\x47\x10\xbd\xf8\xb5\x04\x00\x40\x68\x0d\x00\x00\x28\x1f\xd0\x03\x68\x5b\x68\x98\x47\x07\x00\x20\x68\x21\x89\x03\x68\x9b\x68\x98\x47\x06\x00\x60\x68\x29\x00\x03\x68\xdb\x68\x98\x47\x02\x00\x00\x2e\x05\xd0\x39\x00\x30\x00\x00\x2f\x0b\xd0\x00\xf0\x38\xf9\x60\x68\x29\x00\x03\x68\xdb\x68\x98\x47\x23\x89\x1b\x18\x23\x81\x00\x20\xf8\xbd\x00\xf0\x35\xf9\xf2\xe7\x00\x00\xf0\xb5\x59\x4b\x8b\xb0\x03\x93\x4b\x68\x00\x25\x06\x93\x03\xab\x07\x93\x6b\x46\x9d\x84\x55\x4b\x0c\x68\x55\x4a\x1b\x68\x05\xaf\x06\x00\x04\x94\x05\x92\x08\x95\xdb\x07\x29\xd5\x0c\x20\x73\x69\x98\x47\x50\x49\x83\x07\x00\xd5\x0d\x70\x0b\x78\x4e\x4a\x14\x2b\x04\xd8\x32\x20\xff\x30\x20\x5c\xff\x28\x1b\xd1\x15\x78\x00\x2d\x16\xd1\x01\x23\x04\x98\x13\x70\x81\x30\x80\x22\x29\x00\xff\x30\x00\xf0\x01\xf9\x60\x22\x29\x00\x44\x48\x00\xf0\xfc\xf8\x44\x4b\x1d\x70\x32\x23\xff\x33\xe3\x5c\xff\x2b\x01\xd0\xb3\x69\x98\x47\x0b\xb0\xf0\xbd\x01\x33\x0b\x70\x00\x23\x13\x70\x6a\x46\x81\x33\xff\x33\x01\xad\x93\x84\x3b\x49\x05\x22\x28\x00\x08\x97\x00\xf0\xd9\xf8\x67\x20\x73\x69\x98\x47\x40\x08\xc0\xb2\x00\x28\xe7\xd0\xa0\x28\x26\xd9\x20\x23\x60\x30\xc4\xb2\x2b\x70\x64\x21\x20\x00\xff\xf7\xae\xfe\x30\x30\x0a\x21\x68\x70\x20\x00\xff\xf7\xa8\xfe\x0a\x21\xc0\xb2\xff\xf7\x2a\xff\x30\x31\xa9\x70\x20\x00\x0a\x21\xff\xf7\x24\xff\x00\x27\x30\x31\xe9\x70\x28\x00\xff\xf7\x90\xfe\x87\x42\x0c\xd2\xe9\x5d\x07\xa8\x01\x37\xff\xf7\x55\xff\xff\xb2\xf3\xe7\x60\x24\x64\x42\x24\x1a\x2d\x23\xe4\xb2\xd5\xe7\x1c\x4f\x3b\x78\x20\x3b\x5f\x2b\x01\xd9\x20\x23\x3b\x70\x07\x23\x5c\x43\x1c\x41\x3d\x78\x15\x49\x22\x1c\x48\x19\xe4\xb2\x20\x38\x9c\x42\x00\xd9\x1a\x1c\xd2\xb2\x9a\x1a\xff\x23\x13\x41\xdb\x43\x03\x70\x7b\x2d\x08\xd8\x00\x23\x2a\x00\x18\x00\x1f\x3a\x8a\x18\xd0\x54\x01\x33\x04\x2b\xfb\xd1\x04\x98\x60\x22\xa1\x30\xff\x30\x01\x35\x00\xf0\x78\xf8\x3d\x70\x89\xe7\xdc\xe9\x00\x00\x00\x10\x06\x40\xf4\xe9\x00\x00\x8c\x13\x00\x20\x8d\x13\x00\x20\xb0\x13\x00\x20\x10\x14\x00\x20\xce\xe9\x00\x00\x10\xb5\x0e\x4c\x23\x78\x00\x2b\x05\xd1\x00\xf0\x2b\xf8\x00\xf0\x39\xf8\x01\x23\x23\x70\x0a\x4b\x19\x68\x4a\x1c\x1a\x60\x09\x4b\x4b\x43\x09\x49\x8b\x42\x05\xd8\xc8\x2a\x03\xd9\x07\x49\x08\x48\xff\xf7\x22\xff\x07\x4b\x98\x47\x10\xbd\xc0\x46\x1c\x14\x00\x20\x90\x13\x00\x20\xef\xee\xee\xee\x11\x11\x11\x11\x04\xea\x00\x00\x1c\xea\x00\x00\x99\xc3\x00\x00\x01\x4b\x5a\x1c\x5a\x60\x70\x47\x14\x14\x00\x20\x04\x4b\x05\x4a\x05\x48\x83\x42\x02\xd2\x02\xca\x02\xc3\xfa\xe7\x70\x47\xc0\x46\x8c\x13\x00\x20\xa0\xea\x00\x00\x94\x13\x00\x20\x70\xb5\x00\x26\x0c\x4d\x0d\x4c\x64\x1b\xa4\x10\xa6\x42\x09\xd1\x00\x26\x00\xf0\x81\xf8\x0a\x4d\x0a\x4c\x64\x1b\xa4\x10\xa6\x42\x05\xd1\x70\xbd\xb3\x00\xeb\x58\x98\x47\x01\x36\xee\xe7\xb3\x00\xeb\x58\x98\x47\x01\x36\xf2\xe7\x94\xea\x00\x00\x94\xea\x00\x00\x94\xea\x00\x00\x9c\xea\x00\x00\x00\x23\x10\xb5\x9a\x42\x00\xd1\x10\xbd\xcc\x5c\xc4\x54\x01\x33\xf8\xe7\x03\x00\x82\x18\x93\x42\x00\xd1\x70\x47\x19\x70\x01\x33\xf9\xe7\x67\x30\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xe6\x00\x00\x95\xe6\x00\x00\xb5\xe6\x00\x00\xe9\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\xe6\x00\x00\xbf\xe6\x00\x00\xe1\xe6\x00\x00\xe5\xe6\x00\x00\x04\x07\x00\x20\x20\xd6\x00\x00\x48\xd3\x00\x00\xb3\x03\x00\x20\x84\x06\x00\x20\x06\x04\x00\x20\x4d\x87\x00\x00\xed\xd0\x00\x00\x01\xd1\x00\x00\x45\xbe\x00\x00\x01\xaf\x00\x00\x61\xa9\x00\x00\x39\xb6\x00\x00\xb9\xb0\x00\x00\xe9\xc6\x00\x00\x0d\x87\x00\x00\x4d\x86\x00\x00\x7d\xa6\x00\x00\x19\xa5\x00\x00\xcd\xa7\x00\x00\x29\x01\x00\x00\xbd\xaa\x00\x00\xd5\xaa\x00\x00\xd9\x1c\x00\x00\x3d\xa6\x00\x00\x95\xa7\x00\x00\xb1\xb6\x00\x00\x11\x9c\x00\x00\xd5\x00\x00\x00\x99\xc3\x00\x00\xf8\xb5\xc0\x46\xf8\xbc\x08\xbc\x9e\x46\x70\x47\xf8\xb5\xc0\x46\xf8\xbc\x08\xbc\x9e\x46\x70\x47\x49\xe5\x00\x00\x39\xe9\x00\x00\x21\xe5\x00\x00\xff\x01\x00\x00\x01\x00\x00\x00'

fw += payload


open(sys.argv[1],'wb').write(fw)

